package datos;

import clases.Multa;
import clases.TicketPeaje;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;

public class TableModel<T> extends DefaultTableModel{
    private DefaultTableModel modelo;
    final private String[] COLUMNASTICKET = {"Matrícula", "Tamaño", "Fecha de entrada", "Fecha de salida"};
    final private String[] COLUMNASMULTA = {"Matrícula", "Fecha", "Velocidad (Km/h)", "Importe (€)"};

    public TableModel(ArrayList<T> lista) {
        modelo = new DefaultTableModel();
        if(lista.get(0) instanceof Multa){
                for (int i=0;i<=COLUMNASMULTA.length-1;i++) {
                    modelo.addColumn(COLUMNASMULTA[i]);
                }
                for(Multa m : (ArrayList<Multa>) lista){
                    Object[] datos = {m.getMatricula(), new SimpleDateFormat("yyyy-MM-dd   HH:mm").format(m.getFecha()),(int) m.getVelocidad(), m.getPago()};
                    modelo.addRow(datos);
                }
        }else if (lista.get(0) instanceof TicketPeaje){
            for (int i=0;i<=COLUMNASTICKET.length-1;i++) {
                modelo.addColumn(COLUMNASTICKET[i]);
            }
            for(TicketPeaje tp : (ArrayList<TicketPeaje>) lista){
                Object[] datos = {tp.getMatricula(), tp.getTamaño(), new SimpleDateFormat("yyyy-MM-dd   HH:mm").format(tp.getFecha_entrada()), new SimpleDateFormat("yyyy-MM-dd   HH:mm").format(tp.getFecha())};
                modelo.addRow(datos);
            }
        }
    }
    
    @Override
    public Class getColumnClass(int columna) {
        if (columna == 1)
            return Integer.class;
        return String.class;
    }  

    public DefaultTableModel getModelo() {
        return modelo;
    } 
}
